Skip to content

清理 Android Lint 告警并启用 release 门禁#1377

Open
Sylthionys wants to merge 34 commits into
AutoAccountingOrg:masterfrom
Sylthionys:cleanup-lint-warnings
Open

清理 Android Lint 告警并启用 release 门禁#1377
Sylthionys wants to merge 34 commits into
AutoAccountingOrg:masterfrom
Sylthionys:cleanup-lint-warnings

Conversation

@Sylthionys

@Sylthionys Sylthionys commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

概要

:app:lintDebug --rerun-tasks0 errors / 672 warnings 清理至 0 errors / 0 warnings,并重新启用 release Lint 门禁。

改动按低耦合批次拆分,优先修复真实问题;未新增 lint baseline、全局 disable、类别级 blanket suppression,也未启用 warningsAsErrors。确属兼容需求、动态引用或工具链限制的项目仅使用最小作用域、带理由的精确豁免。

主要改动

  • 修复资源关闭、API 兼容、通知入口、OCR action、日期格式及 View 生命周期问题。
  • 启用 abortOnErrorcheckReleaseBuilds,并将关键正确性检查设为 fatal。
  • 清理可访问性、文本、国际化、RTL、布局及列表更新告警。
  • 将 Palette 动态资源查找改为静态 R.color 映射;精确保留反射/ViewBinding 布局,并删除经引用审计确认无用的资源。
  • 固定 Bugly 版本,分批验证并更新 AndroidX、Navigation、Lifecycle、Room、Material、MMKV、Coroutines、LiteRT、测试库与 AGP patch。
  • 保持服务端 HTTP API、数据库 schema、分类行为、回环 HTTP、用户 WebDAV 配置和旧外部图标源兼容性不变。

精确豁免

  • core-ktx 保持在已验证的 1.17.0:更新版本要求 compileSdk 37 / AGP 9.1。
  • AGP 更新至已验证的 8.9.3:AGP 9.x 需要独立的 Gradle 9、内置 Kotlin 与新 DSL 迁移。
  • 网络明文兼容、复杂矢量资源及少量确认误报均仅在单声明或单资源处保留带理由豁免。

审查重点

建议优先审查以下高风险改动:

  • 资源删除与保留规则:确认删除项不存在动态、反射、ViewBinding、assets/raw 或生成代码引用;重点检查 res/raw/keep.xml 中保留的反射/ViewBinding 布局,以及启动图标和默认图片迁移。
  • 通知与 OCR 行为:确认通知主点击进入正常应用入口,OCR 仅由明确 action 触发;API 29–30 的 Root/Shizuku 最佳努力收起和 API 31+ accessibility action 符合预期。
  • 列表与布局更新:确认精确通知替代全量刷新后,排序、选中状态和刷新语义未变化。
  • 依赖与工具链:重点关注 MMKV、LiteRT 和 AGP patch 更新;AGP 9.x 与 core-ktx 1.19.0 因工具链要求暂未迁移,并采用单声明精确豁免。
  • 兼容性边界:确认服务端 HTTP API、数据库 schema、分类行为、回环 HTTP、WebDAV 配置和旧外部图标源未发生行为变化。

验证

  • ./gradlew :app:lintDebug --rerun-tasks0 errors / 0 warnings
  • ./gradlew test assembleRelease:通过
  • git diff --check:通过
  • 无 lint baseline;隐私扫描未发现新增原始账单、稳定 ID、密钥、本地路径或 AI 响应日志
  • Root Android 真机验证通过:通知主点击、OCR action、OCR 完整流程、LiteRT 模型加载及 52045 服务往返

Fix AI category validation and build warnings
@Sylthionys

Sylthionys commented Jun 15, 2026

Copy link
Copy Markdown
Contributor Author

已修复:

  • BasePageFragment 正确处理加载任务取消,仅允许当前 loadJob 清理状态,避免旧任务覆盖新任务。
  • BillRoutes 不再记录原始搜索词,仅记录 hasKeyword

提交:a7c7c82f

验证:git diff --check、40 个单元测试、lintDebugassembleRelease、1 个设备端 Tap 测试。

@Sylthionys Sylthionys marked this pull request as ready for review June 15, 2026 20:57
@Sylthionys Sylthionys marked this pull request as draft June 15, 2026 21:12
@AnkioTomas

Copy link
Copy Markdown
Contributor

Hi,@Sylthionys

虽然我不太清楚你那边的工作时间,不过我看你提交PR的时间已经是中国时间凌晨 4 点了。无论你身处哪个时区,也别忘了注意休息。健康的生活和作息才有利于开源项目的长远发展。

感谢你的贡献和支持,祝你有个愉快的一天!

@Sylthionys

Copy link
Copy Markdown
Contributor Author

感谢关心和提醒!

@Sylthionys

Sylthionys commented Jun 16, 2026

Copy link
Copy Markdown
Contributor Author

已修复:BillRoutestype 状态查询解析会 trim 逗号分隔后的 token、过滤空值,并在解析结果为空时回退默认状态,兼容 Edited, Synced, Wait2Edit 旧格式。

提交:1b4ed5a1

验证:git diff --check:server:testDebugUnitTest:app:installDebug、1 个设备端 Tap 测试、真机接口旧格式/无空格格式一致。

@Sylthionys Sylthionys marked this pull request as ready for review June 16, 2026 17:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants